/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package es.us.gestortareas.bean;

import es.us.gestortareas.entity.Tarea;
import es.us.gestortareas.entity.Usuario;
import static es.us.gestortareas.entity.UsuarioTarea_.tarea;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author master
 */
@Stateless
public class TareaFacade extends AbstractFacade<Tarea> {
    @PersistenceContext(unitName = "Proyecto-ejbPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public TareaFacade() {
        super(Tarea.class);
    }
    
    
    public List<Tarea> findByOwner (Usuario usuario)
    {
        List<Tarea> res=null;
/*em.createQuery("SELECT Tarea. FROM Tarea, Usuario_Tarea")+"where"+Tarea.id=Usuario_Tarea.id_tarea AND"+"
+ "Usuario"rol Creador and Usuario_tarea_id=id_usuario*/
        "SELECT t FROM Tarea t WHERE :usuario MEMBER OF t.usuarioTareaList AND t.usuarioTareaLIS.rol='creador'"
        





        q.setParameter("is_usuario", usuario.getId());
    
    return res;
    }

   
    
    
    //crear tarea
     public Tarea creaTarea(Tarea tarea) {
        return null;
    }
                
                
//eliminar tarea
     public Tarea BorraTarea(Tarea tarea) {
         return update(tarea);
    }
     
     public Tarea update (Tarea tarea) {
        
       return em.merge(tarea);
    }
     
//editar terea: asignar varios usuario
     
/*quitar varias tareas
        
        -ver mis tareas
         -ver las tareas en las que participo
  ver por : -estado
                                -nombre
                                -cadena dentro de la descripcion,
                                -entre dos fechas; creacion
                                                    finalizacion.
     
     lo ideal seria llevarlo a la capa de datos*/

}
